﻿Public Class Aerolineas

    Private oMaestra As New CMaestras
    Private idAerolinea As Integer

    Private Sub Aerolineas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.CargarGrilla()        
    End Sub

    Private Sub CargarGrilla()
        Try
            Dim ds As New DataSet
            ds = Me.oMaestra.GetTabla(CMaestras.Tabla.Aerolinea)
            'Llena grilla de las monedas
            If (ds.Tables(0).Rows.Count > 0) Then
                Me.grdAeropuerto.DataSource = Nothing
                Me.grdAeropuerto.Columns.Clear()
                Me.grdAeropuerto.DataSource = ds.Tables(0)

                Dim iconoEditar As New DataGridViewImageColumn()
                iconoEditar.ValuesAreIcons = False
                iconoEditar.Image = My.Resources.editar
                iconoEditar.HeaderText = "EDITAR"
                iconoEditar.Name = "EDITAR"
                Me.grdAeropuerto.Columns.Add(iconoEditar)

                Dim iconoEliminar As New DataGridViewImageColumn()
                iconoEliminar.ValuesAreIcons = False
                iconoEliminar.Image = My.Resources.eliminar
                iconoEliminar.HeaderText = "ELIMINAR"
                iconoEliminar.Name = "ELIMINAR"
                Me.grdAeropuerto.Columns.Add(iconoEliminar)

                Me.grdAeropuerto.Columns("ID").Visible = False
                Me.grdAeropuerto.Columns("EDITAR").Width = 60
                Me.grdAeropuerto.Columns("ELIMINAR").Width = 70
            Else
                Me.grdAeropuerto.DataSource = Nothing
                Me.grdAeropuerto.Columns.Clear()
                MessageBox.Show("No existen aerolíneas", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If

        Catch ex As Exception
            MessageBox.Show("Ocurrió un error al cargar las aerolíneas: " & ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
        End Try
    End Sub

    Private Sub EliminarAerolinea(ByVal id As Integer)
        Try
            If (MessageBox.Show("¿Realmente desea eliminar esta aerolínea?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes) Then
                Cursor = Cursors.WaitCursor
                Me.oMaestra.Eliminar(id, CMaestras.Tabla.Aerolinea)
                MessageBox.Show("La aerolínea ha sido eliminada", "Aerolínea eliminada", MessageBoxButtons.OK, MessageBoxIcon.Information)

                Cursor = Cursors.Default
            End If
        Catch ex As Exception
            Cursor = Cursors.Default
            MessageBox.Show("NO se eliminó la aerolínea: " & ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
        End Try
        Me.CargarGrilla()
    End Sub

    Private Function ValidarAerolinea() As Boolean
        Dim mensaje As String = ""

        If (Trim(Me.txtAerolinea.Text).Length = 0) Then
            mensaje += "- Debe escribir la aerolínea" & Chr(13)
        End If
        If (Trim(Me.txtAbreviatura.Text).Length = 0) Then
            mensaje += "- Debe escribir la abreviatura" & Chr(13)
        End If

        If (mensaje.Length > 0) Then
            MessageBox.Show(mensaje, "Datos incompletos", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Return False
        Else
            Return True
        End If
    End Function

    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        Me.idAerolinea = 0
        Me.txtAerolinea.Text = ""
        Me.txtAbreviatura.Text = ""
    End Sub

    Private Sub btnListo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnListo.Click
        If (Me.ValidarAerolinea()) Then
            Try
                Cursor = Cursors.WaitCursor

                Dim result As String = Me.oMaestra.ActualizarAerolinea(Me.idAerolinea, Me.txtAerolinea.Text, Me.txtAbreviatura.Text.Trim())
                Cursor = Cursors.Default

                MessageBox.Show(result, "Aerolínea", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Catch ex As Exception
                Cursor = Cursors.Default
                MessageBox.Show("Ocurrió un error al guardar la aerolínea: " & ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            End Try

            Me.idAerolinea = 0
            Me.txtAerolinea.Text = ""
            Me.txtAbreviatura.Text = ""
            Me.CargarGrilla()
        End If
    End Sub

    Private Sub grdAeropuerto_CellMouseEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles grdAeropuerto.CellMouseEnter
        If (Me.grdAeropuerto.Columns(e.ColumnIndex).Name = "ELIMINAR" Or Me.grdAeropuerto.Columns(e.ColumnIndex).Name = "EDITAR") Then
            Cursor = Cursors.Hand
        Else
            Cursor = Cursors.Default
        End If
    End Sub

    Private Sub grdAeropuerto_CellDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles grdAeropuerto.CellDoubleClick
        '*** Permite EDITAR o ELIMINAR
        'Se obtiene la info del registro
        Dim id As Integer = Me.grdAeropuerto.Rows(e.RowIndex).Cells("ID").Value
        Dim aerolinea As String = Me.grdAeropuerto.Rows(e.RowIndex).Cells("AEROLINEA").Value
        Dim abreviatura As String = Me.grdAeropuerto.Rows(e.RowIndex).Cells("ABREVIATURA").Value

        Select Case Me.grdAeropuerto.Columns(e.ColumnIndex).Name
            Case "EDITAR"
                Me.idAerolinea = id
                Me.txtAerolinea.Text = aerolinea
                Me.txtAbreviatura.Text = abreviatura
            Case "ELIMINAR"
                Me.EliminarAerolinea(id)
        End Select
    End Sub
End Class